﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SIIV.Data;

namespace SIIV.Business
{
    public class NotificacionBusiness
    {
        public List<Recomendacion> ObtenerRecomendaciones()
        {
            using (SIIVDataModel model = new SIIVDataModel())
            {
                return model.Recomendacions.Include("Enfermedad").ToList();
            }
        }

        public List<Notificacion> ObtenerNotificaciones(int idVeterinario)
        {
            using (SIIVDataModel model = new SIIVDataModel())
            {
                return model.Notificaciones.Include("Analisis.TipoDeAnalisis").Include("Analisis.Muestra.Animal").Where(n => !n.Leida && n.IdVeterinario.Equals(idVeterinario)).ToList();
            }
        }

        public void MarcarNotificacionComoLeida(int idNotificacion)
        {
            using (SIIVDataModel model = new SIIVDataModel())
            {
                Notificacion notificacion = model.Notificaciones.Single(n => n.IdNotificacion.Equals(idNotificacion));
                notificacion.Leida = true;
                model.SaveChanges();
            }
        }

        public void GenerarNotificaciones(int idVeterinario)
        {
            using (SIIVDataModel model = new SIIVDataModel())
            {
                model.sp_GeneroNotificacion(idVeterinario);
            }
        }

        public List<DTOProyeccion> ProyeccionEnfermedades(int idAnimal, DateTime fechaInicio, DateTime fechaFin)
        {
            using (SIIVDataModel model = new SIIVDataModel())
            {
                return model.sp_SistInteligente(idAnimal, fechaInicio, fechaFin.AddDays(1)).ToList();
            }
        }
    }
}
